草庐IT

PHPUnit 和 CodeIgniter

全部标签

php - CodeIgniter Controller 被调用两次

完全有可能我在某个地方犯了一个大错误,但由于某种原因,我的Controller被调用了两次。这会破坏Chrome上的DX_Auth验证码,但不知何故,Firefox和IE可以处理它。问题是,每个Controller都被调用两次,相隔毫秒。我使用log_message()从$_SERVER超全局打印每个键/值对。唯一的区别是:第一次通话'HTTP_CACHE_CONTROL'=>'max-age=0''HTTP_ACCEPT'=>'application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/pn

php - 为什么 PHPUnit 在生成覆盖率报告时要执行代码?

亲爱的stackoverflowers,我们正在开发一个基于cakephp的Web应用程序。CakePHP被证明有点难以以TDD方式使用,因此我们试图通过将所有业务逻辑提取到不依赖于cakephp的类中,在它自己的框架上开发尽可能少的代码。因此,我们能够使用phpunit测试我们的库,问题最少。然而,我们确实希望将未经测试的代码包含在我们的覆盖率报告中,而不是任何东西,以密切关注cake和我们无法测试的库之间的胶水代码量。那么问题是,当告诉phpunit解释这些代码时,它会疯狂地解析和执行cakephp的代码,并且它会崩溃。我的问题是:为什么phpunit会执行这段代码?这里有什么我们

php - 即使浏览器关闭,CodeIgniter 如何保留 session 数据?

我想知道session在CodeIgniter中是如何工作的。session是否应该在浏览器关闭时自动销毁?默认情况下,CodeIgniter不会在浏览器关闭时销毁session:$config['sess_expire_on_close']=FALSE;相反,我们可以设置session过期时间:$config['sess_expiration']=7200;现在例如,如果我将过期时间设置为0,只要我不自行销毁,它就会保持session:$this->session->sess_destroy();那么CodeIgniter如何在特定时间内保留session信息,甚至在浏览器关闭之后?

php - 上传图片并在 codeigniter 中插入文本

我正在尝试上传带有标题和描述的图像以及图像上传。我的图片上传和文本输入是分开工作的,文本和图片路径也被插入到数据库中,但我仍然不知道如何将两者结合起来我使用了http://codeigniter.com/user_guide/libraries/file_uploading.html中给出的指南functiondo_upload(){$config['upload_path']='./uploads/';$config['allowed_types']='gif|jpg|png';$config['max_size']='100';$config['max_width']='1024'

PHPUnit Selenium 服务器 - 更好/自定义错误处理?

有没有办法让PHPUnit在出错后继续运行?例如,我有一个大型测试套件(400多个步骤),我更希望如果没有找到一个元素,它不会阻止我的脚本的其余部分继续。 最佳答案 我们在Selenium测试中做同样的事情。您需要捕获因断言失败而抛出的异常,唯一的方法是创建一个覆盖断言方法的自定义测试用例基类。您可以存储失败消息并在最后使用测试监听器使测试失败。我面前没有代码,但它非常简单。例如,abstractclassDelayedFailureSeleniumTestCaseextendsPHPUnit_Extension_SeleniumT

php - 使用 OS X Lion 在 MAMP 上使用 codeception 和 phpunit

运行:MAMP2.0.5PHP5.3.6(与MAMP捆绑)MacOSXLion10.7.2我的目标是获得Codeception在我的MAMP项目中工作和使用的测试框架。我正在关注theinstructionshere关于如何安装它。Pear已安装并且工作正常。我可以使用这些命令安装Codeception:$pearchannel-discovercodeception.com/pear$pearinstallcodeception/Codeception安装后,当我尝试运行codecept命令时,出现以下错误:Warning:require_once(Codeception/autol

单独运行时,PHPUnit 报告同一测试的不同代码覆盖率百分比

首先,让我说我已经通过了Reaching100%CodeCoveragewithPHPUnitSO以及Howtoget100%CodeCoveragewithPHPUnitSO.我无法借助其中任何一个解决问题。我的问题是,与运行整个测试套件时相比,PHPUnit在单独运行时报告同一测试的不同代码覆盖率百分比。因此,当我使用phpunittest/src/artax/UsesRequestTraitTest仅运行有问题的特定测试时,我得到以下覆盖率:但是,如果我在未指定特定测试的情况下使用phpunit运行我的全套测试,我将收到同一文件的以下信息:这是测试的源代码:getObjectFo

php - 自定义 PHPUnit 约束停止工作

我为自己创建了一个自定义PHPUnit约束并将其连接到一个不错的assert...函数。我将它放入我的基本TestCase中,它是assertLastError函数:/***abstract,basetest-caseclass.*/abstractclassTestCaseextends\PHPUnit_Framework_TestCase{/***assertlintofaphpfile*/protectedfunctionassertLint($filename,$message=''){self::assertThat($filename,newConstraintLint,$

php - 库作为 Codeigniter 中的单例?

我使用单例模式创建了一个自定义库。为什么要这样?因为我需要能够在没有$this->引用的情况下调用我的函数,例如,我可以执行以下代码:functionfoo(){MyLibrary::instance()->foo();}然后我可以像这样在Controller中调用我的函数:functionfoo();代替$this->mylibrary->foo();我有麻烦了,因为CodeIgniter试图在最佳方法是“读取”静态实例时实例化我的库。为什么我需要这样做?我的自定义库必须从位于应用程序文件夹外的/plugins目录中的外部php文件注册“Hook”。看:/申请/插件/plugins/

php - 如何使 Codeigniter 中的分页类与 AJAX 一起工作?

我有一个通过AJAX加载的表格,分页也通过AJAX加载。该表包含我网站上所有用户的列表,一次限制为30个。这就是我从Controller返回对JavaScript的响应的方式:$users=$this->users_m->get_users($type,$offset);$num_rows=$this->users_m->user_stats($type);$config['per_page']=30;$config['num_links']=5;$config['total_rows']=$num_rows[0];$this->pagination->initialize($conf